package cn.edu.zust.se.service.file.service;

import cn.edu.zust.se.api.entity.Folder;
import cn.edu.zust.se.api.entity.bo.FolderBo;
import cn.edu.zust.se.api.entity.vo.FileAndFolderVo;
import cn.hutool.core.lang.tree.Tree;
import cn.edu.zust.se.api.entity.bo.FolderBo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.http.ResponseEntity;

import java.io.IOException;
import java.util.List;

public interface FolderService extends IService<Folder> {
    ResponseEntity<byte[]> downloadFolder(Long folderId);

    Boolean createFolder(FolderBo bo);

    Tree<String> getFolderTree(Long folderId);
    List<Folder> getFoldersByFolderId(Long folderId, Integer type);
    Boolean updateById(FolderBo folderBo);

     Boolean delFileAndFolder(Long folderId, Integer type) throws IOException;
    FileAndFolderVo getFilesAndFolders(Long folderId, Integer type);

    Boolean recycle(Long folderId);

    boolean move(FolderBo folderBo);
     Boolean copyFolder(Long folderId, Long targetFolderId);
}
